package leetcode;

/*
796. 旋转字符串
给定两个字符串, A 和 B。
A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde'，在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后，A 能变成B，那么返回True。
示例 1:
输入: A = 'abcde', B = 'cdeab'
输出: true
示例 2:
输入: A = 'abcde', B = 'abced'
输出: false
注意：
A 和 B 长度不超过 100。
*/

public class problems_796 {
    public static void main(String[] args) {
        System.out.println(new Solution().rotateString("abcde", "cdeab"));
    }

    static class Solution {
        public boolean rotateString(String A, String B) {
            if (null == A || A.length() == 0) {
                if (null == B || B.length() == 0) {
                    return true;
                } else {
                    return false;
                }
            }
            char first = A.charAt(0);
            for (int i = 0; i < B.length(); i++) {
                if (B.charAt(i) != first) continue;
                // 首字母相同时
                if (A.equals(B.substring(i) + B.substring(0, i))) return true;
            }
            return false;
        }
    }
}